<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=, initial-scale=1.0">
    <title>Document</title>
</head>

<body>
    <script>
        // 原生的Ajax的实现，核心是 浏览器的内置对象 XMLHttpRequest 对象

        // 1. 实例化对象
        const xhr = new XMLHttpRequest()

        // 2. 准备一个 load 事件；完整的接收到服务器返回的结果后触发；
        xhr.addEventListener('load', function () {
            // 使用 response 属性，获取服务器返回的结果
            let res = JSON.parse(xhr.response)
            console.log(res)
        })

        // 调用open方法，设置请求方式，设置请求url地址
        xhr.open('POST', 'http://www.itcbc.com:3006/api/addbook')

        // 4. 调用 send 方法，发送请求
        // 接口文档如果写的是 请求体 或 body参数，参数要写到 send() 里面
        // 请求体有三种格式（到达用什么格式，看接口文档）：
        // - JSON格式         Content-Type: application/json
        // - FormData格式     Content-Type: multipart/form-data
        // - 查询字符串格式     Content-Type: application/x-www-form-urlencoded

        // 4.1 提交JSON格式
        // xhr.setRequestHeader('Content-Type', 'application/json')
        // xhr.send(JSON.stringify({ bookname: 'dsdf', author: 'dsf', publisher: 'dsf' }))

        // 4.2 提交查询字符串
        // xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded')
        // xhr.send(`bookname=${encodeURIComponent('红&黑')}&author=吴承恩&publisher=北京出版社`)

        // 4.3 提交 FormData 对象
        // 提交FormData对象，请求头不要设置。浏览器会自动设置
        let fd = new FormData()
        fd.append('bookname','data')
        fd.append('author','data')
        fd.append('publisher','data')
        xhr.send(fd)
    </script>
</body>

</html>